The present disclosure relates generally to computer system resources, and more specifically to managing the overhead of high-speed data transfers over a link interface.
Data traffic flows throughout computer systems in a variety of configurations and between a variety of components/subsystems. A contemporary data flow configuration includes a send component/subsystem that communicates data through a link to a receive component/subsystem. For example, a computer system architecture includes a communication protocol that connects sound cards, video cards, network cards and other subsystems to a motherboard. Peripheral Component Interconnect Express (PCIe®) is an example of a suitable communication protocol that provides high speed communication through a network of point-to-point serial connections.
As computer systems and their components and subsystems continue to become faster and more powerful, additional messaging methodologies and configurations have been developed to manage higher rates of data transfer. For example, direct memory access (DMA) is a messaging methodology that allows certain hardware subsystems within the computer system to access system memory independently of the system central processing unit (CPU). Computer systems that have DMA channels can transfer data to and from system components with much less CPU overhead than computer systems without DMA channels. DMA can also be used for “memory to memory” copying or moving data within memory. Thus, DMA can offload expensive memory operations, such as large copies or scatter-gather operations, from the CPU to a dedicated DMA engine.
Although high-speed messaging methodologies, such as DMA controls and engines, improve a computer system's ability to handle higher rates of data transfer, as data transfer quantity and speed continue to increase, high speed messaging methodologies become more complicated and contribute more system overhead.